hysop.problem module

class hysop.problem.Problem(name=None, method=None, mpi_params=None, check_unique_clenv=True, **kwds)[source]

Bases: ComputationalGraph

Parameters:

kwds (arguments for base classes.)

Notes

The following base class variables cannot be specified during graph construction:

variables, input_variables, output_variables

Order of operation is: add_node, initialize, discretize,

get_work_properties, setup, apply, finalize.

Nodes can also be added during pre initialization step. Graph building is done at the end of the initialization step, after all internal nodes have been initialized.

build(args=None, allow_subbuffers=False, outputs_are_inputs=True, search_intertasks_ops=None)[source]

Shortcut for initialize(), discretize(), get_work_properties(), setup() for quick graph initialization.

build_problem(args, allow_subbuffers, outputs_are_inputs=True, search_intertasks_ops=None)[source]
check_unique_clenv()[source]
discretize()[source]

Discretize this operator. By default this just sets the self.discretized flag to True. Once this flag is set one may call ComputationalGraphNode.get_work_properties() and ComputationalGraphNode.setup().

final_report()[source]
finalize()[source]

Cleanup this node (free memory from external solvers, …) By default, this does nothing

get_preserved_input_fields()[source]
initialize_field(field, mpi_params=None, **kwds)[source]

Initialize a field on all its input and output topologies.

insert(*ops)[source]
solve(simu, dry_run=False, dbg=None, report_freq=10, plot_freq=10, checkpoint_handler=None, **kwds)[source]